package com.example.foobar.business.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.foobar.dto.DABaseDTO;
import com.example.foobar.entity.DaUserChangeRecord;
import com.example.foobar.entity.ImsGhostCustomActiveRecord;
import com.example.foobar.param.DaUserChangeRecordPageParam;
import com.example.foobar.param.ImsGhostCustomActiveRecordPageParam;
import io.geekidea.springbootplus.framework.core.pagination.Paging;

import java.util.Date;
import java.util.List;

/**
 * 本地公众号信息 服务类
 *
 * @author 郑英奔
 * @since 2021-05-31
 */
public interface ImsGhostCustomActiveRecordService {

    boolean saveImsGhostCustomActiveRecord(ImsGhostCustomActiveRecord imsGhostCustomActiveRecord);

    boolean updateImsGhostCustomActiveRecord(ImsGhostCustomActiveRecord imsGhostCustomActiveRecord);

    boolean deleteImsGhostCustomActiveRecord(Long id);

    ImsGhostCustomActiveRecord getById(Long id);

    List<ImsGhostCustomActiveRecord> list(QueryWrapper<ImsGhostCustomActiveRecord> wrapper);

    List<DABaseDTO> getActiveDataByOfficialAccountIdAndDataRange(String uniacid, Date start, Date end, List<String> messageTypeList);

    List<DABaseDTO> getSubscribeCount(String uniacid, Date startDate, Date endDate);

    List<ImsGhostCustomActiveRecord> listByDate(Date date);

    List<DABaseDTO> getActiveDataByOfficialSenceIdAndDataRange(String sceneId, Date baseDate, Date today, Date today1, List<String> messageTypeList);

    int getSubscribeCountBySceneId(String sceneId, Date baseDate);
}
